package leetcode.hash;

import java.util.HashMap;
import java.util.Map;

/**
 * 242.有效的字母异位词
 * 给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。
 * <p>
 * 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true
 * <p>
 * 示例 2: 输入: s = "rat", t = "car" 输出: false
 * <p>
 * 说明: 你可以假设字符串只包含小写字母。
 */
public class _242 {



    public static boolean isAnagram(String s, String t) {
        if (s.length()!=t.length()){
            return false;
        }

        Map<Character, Integer> map = new HashMap<>();

        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1);
        }

        for (int i = 0; i < t.length(); i++) {
            char c = t.charAt(i);
            if (!map.containsKey(c) || map.get(c) == 0) {
                return false;
            }
            map.put(c, map.get(c) - 1);
        }
        return true;

    }
}
